/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package projovem.relatorios.sintesesupervisao;

import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.GregorianCalendar;
import java.util.List;
import java.util.Locale;
import javax.persistence.EntityManagerFactory;
import projovem.dao.NucleoDAO;
import projovem.rotinas.R005.Rotina005;
import projovem.relatorios.sintesesupervisao.vo.Rotina005V3SinteseSupervisaoVo;

/**
 *
 * @author admprojovem
 */
public class SinteseSupervisaoRotina005V3 implements Serializable {

    private NucleoDAO nucleoDao = new NucleoDAO();
    private Rotina005V3SinteseSupervisaoVo contagem = new Rotina005V3SinteseSupervisaoVo();

    public Rotina005V3SinteseSupervisaoVo gerarRelatorio(String coordenacaoEscolhida, String entradaEscolhida, String observacaoEscolhida, String municipioEscolhida, EntityManagerFactory emf) {

        List<Rotina005> listaRotina005V3 = nucleoDao.obtemNucleosByCoordenacaoAndEntradaAndRotina005(coordenacaoEscolhida, entradaEscolhida, observacaoEscolhida, municipioEscolhida, emf);
        contagem.setListaRotina005V3(listaRotina005V3);


        for (Rotina005 rotina : listaRotina005V3) {

            if (rotina.getQ2() != null && rotina.getQ2().equals("nao")) {
                contagem.setQ2nao(contagem.getQ2nao() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }
            if (rotina.getQ2() != null && rotina.getQ2().equals("sim")) {
                contagem.setQ2sim(contagem.getQ2sim() + 1);


                if (rotina.getQ3() != null && rotina.getQ3().equals("sim")) {
                    contagem.setQ3sim(contagem.getQ3sim() + 1);
                }
                if (rotina.getQ3() != null && rotina.getQ3().equals("nao")) {
                    contagem.setQ3nao(contagem.getQ3nao() + 1);
                    contagem.setNegativo(contagem.getNegativo() + 1);
                }

                Integer horaInicial = Integer.parseInt(rotina.getQ4a().substring(0, 2));
                Integer horaFinal = Integer.parseInt(rotina.getQ4b().substring(0, 2));

                if (horaFinal - horaInicial >= 4) {
                    contagem.setQ4a(contagem.getQ4a() + 1);
                }
                if (horaFinal - horaInicial >= 3 && horaFinal - horaInicial < 4) {
                    contagem.setQ4b(contagem.getQ4b() + 1);
                    contagem.setNegativo(contagem.getNegativo() + 1);
                }
                if (horaFinal - horaInicial < 3) {
                    contagem.setQ4c(contagem.getQ4c() + 1);
                    contagem.setNegativo(contagem.getNegativo() + 1);
                }

                /*Integer totalAlunosNasSalas = 0;
                Integer totalDeSalasComAlunos = 0;

                if (rotina.getQ6aP() != null && !rotina.getQ6aP().isEmpty() && Integer.parseInt(rotina.getQ6aP()) > 0) {
                    totalDeSalasComAlunos++;
                    totalAlunosNasSalas += Integer.parseInt(rotina.getQ6aP());
                }
                if (rotina.getQ6bP() != null && !rotina.getQ6bP().isEmpty() && Integer.parseInt(rotina.getQ6bP()) > 0) {
                    totalDeSalasComAlunos++;
                    totalAlunosNasSalas += Integer.parseInt(rotina.getQ6bP());
                }
                if (rotina.getQ6cP() != null && !rotina.getQ6cP().isEmpty() && Integer.parseInt(rotina.getQ6cP()) > 0) {
                    totalDeSalasComAlunos++;
                    totalAlunosNasSalas += Integer.parseInt(rotina.getQ6cP());
                }
                if (rotina.getQ6dP() != null && !rotina.getQ6dP().isEmpty() && Integer.parseInt(rotina.getQ6dP()) > 0) {
                    totalDeSalasComAlunos++;
                    totalAlunosNasSalas += Integer.parseInt(rotina.getQ6dP());
                }
                if (rotina.getQ6eP() != null && !rotina.getQ6eP().isEmpty() && Integer.parseInt(rotina.getQ6eP()) > 0) {
                    totalDeSalasComAlunos++;
                    totalAlunosNasSalas += Integer.parseInt(rotina.getQ6eP());
                }


                */
                Integer mediaDeAlunosPorSala = 0;

                mediaDeAlunosPorSala = (rotina.getQ6mediaP() + rotina.getQ6mediaP2())/2;
                //mediaDeAlunosPorSala = rotina.getQ6mediaP();

                if (mediaDeAlunosPorSala >= 25) {
                    contagem.setQ6a(contagem.getQ6a() + 1);
                }
                if (mediaDeAlunosPorSala >= 10 && mediaDeAlunosPorSala < 25) {
                    contagem.setQ6b(contagem.getQ6b() + 1);
                    contagem.setNegativo(contagem.getNegativo() + 1);
                }
                if (mediaDeAlunosPorSala < 10) {
                    contagem.setQ6c(contagem.getQ6c() + 1);
                    contagem.setNegativo(contagem.getNegativo() + 1);
                }

                if (rotina.getQ7() != null && rotina.getQ7().equals("sim")) {
                    contagem.setQ7sim(contagem.getQ7sim() + 1);
                    contagem.setPositivo(contagem.getPositivo() + 1);
                }
                if (rotina.getQ7() != null && rotina.getQ7().equals("nao")) {
                    contagem.setQ7nao(contagem.getQ7nao() + 1);
                }

                if (rotina.getQ8a() != null && rotina.getQ8a().equals("naoComAula")) {
                    contagem.setQ8aC(contagem.getQ8aC() + 1);
                }
                if (rotina.getQ8a() != null && rotina.getQ8a().equals("naoEducadorNaoContratado")) {
                    contagem.setQ8aD(contagem.getQ8aD() + 1);
                    contagem.setNegativo(contagem.getNegativo() + 1);
                }

                if (rotina.getQ8b() != null && rotina.getQ8b().equals("naoComAula")) {
                    contagem.setQ8bC(contagem.getQ8bC() + 1);
                }
                if (rotina.getQ8b() != null && rotina.getQ8b().equals("naoEducadorNaoContratado")) {
                    contagem.setQ8bD(contagem.getQ8bD() + 1);
                    contagem.setNegativo(contagem.getNegativo() + 1);
                }

                if (rotina.getQ8c() != null && rotina.getQ8c().equals("naoComAula")) {
                    contagem.setQ8cC(contagem.getQ8cC() + 1);
                }
                if (rotina.getQ8c() != null && rotina.getQ8c().equals("naoEducadorNaoContratado")) {
                    contagem.setQ8cD(contagem.getQ8cD() + 1);
                    contagem.setNegativo(contagem.getNegativo() + 1);
                }

                if (rotina.getQ8d() != null && rotina.getQ8d().equals("naoComAula")) {
                    contagem.setQ8dC(contagem.getQ8dC() + 1);
                }
                if (rotina.getQ8d() != null && rotina.getQ8d().equals("naoEducadorNaoContratado")) {
                    contagem.setQ8dD(contagem.getQ8dD() + 1);
                    contagem.setNegativo(contagem.getNegativo() + 1);
                }

                if (rotina.getQ8e() != null && rotina.getQ8e().equals("naoComAula")) {
                    contagem.setQ8eC(contagem.getQ8eC() + 1);
                }
                if (rotina.getQ8e() != null && rotina.getQ8e().equals("naoEducadorNaoContratado")) {
                    contagem.setQ8eD(contagem.getQ8eD() + 1);
                    contagem.setNegativo(contagem.getNegativo() + 1);
                }

                if (rotina.getQ8f() != null && rotina.getQ8f().equals("naoComAula")) {
                    contagem.setQ8fC(contagem.getQ8fC() + 1);
                }
                if (rotina.getQ8f() != null && rotina.getQ8f().equals("naoEducadorNaoContratado")) {
                    contagem.setQ8fD(contagem.getQ8fD() + 1);
                    contagem.setNegativo(contagem.getNegativo() + 1);
                }

                if (rotina.getQ8g() != null && rotina.getQ8g().equals("naoComAula")) {
                    contagem.setQ8gC(contagem.getQ8gC() + 1);
                }
                if (rotina.getQ8g() != null && rotina.getQ8g().equals("naoEducadorNaoContratado")) {
                    contagem.setQ8gD(contagem.getQ8gD() + 1);
                    contagem.setNegativo(contagem.getNegativo() + 1);
                }

                if (rotina.getQ9() != null && rotina.getQ9().equals("sim")) {
                    contagem.setQ9sim(contagem.getQ9sim() + 1);
                }
                if (rotina.getQ9() != null && rotina.getQ9().equals("nao")) {
                    contagem.setQ9nao(contagem.getQ9nao() + 1);
                    contagem.setNegativo(contagem.getNegativo() + 1);
                }

            }
        }
        Locale locale = new Locale("pt", "BR");
        GregorianCalendar calendar = new GregorianCalendar();
        SimpleDateFormat formatador = new SimpleDateFormat("dd' de 'MMMMM' de 'yyyy' - 'HH':'mm'h'", locale);
        contagem.setDataatual(formatador.format(calendar.getTime()));
        System.out.println(formatador.format(calendar.getTime()));
        return contagem;
    }
}
